function getFirstDayWeek(date){
    date = new Date(date);  //得到一个与原日期时间相同的新日期
    date.setDate(1); // 设置为该月的第一天
    var week = date.getDay();
    week =  week == 0 ? 7 : week; // week = week || 7; (如果本月第一天是星期天:0 => 7)
    return week;
}

function getLastMonthDays(date){
    date = new Date(date);
    date.setDate(0); //本月的第0天 就是上个月的最后一天
    return date.getDate();
}

function getThisMonthDays(date){
    // debugger;
    date = new Date(date);

    // 月份切换 => (31号)日期可能自动换算
    // 问题:  date.setMonth(date.getMonth()+1);   只是将月份向后推一个月 但是没有考虑日期 =>如果月份切换的过程中  日期超出最大临界值(31 => 30    31 =>28 29 大月=>小月,二月)
    // 问题演示
    // 原日期: 2021-10-31  => 下个月 2021-11-13 => 超出换算(2021-12-1) => 设置日期为0 (2021-11-30)

    // 解决方法:经分析 日期是几号(31除外)没有太大的影响  => 后面都会被设置为0 => 可以在改变月份之前将日期设置为 每个月都有的(1-28) 
    // 问题解决效果演示
    // 原日期: 2021-10-31  => 设置为1号(2021-10-1) =>下个月 2021-11-1 => 设置日期为0 (2021-11-0 => 2021-10-31)


    date.setDate(1);
    date.setMonth(date.getMonth()+1);  
    date.setDate(0); //下个月的第0天 就是本月的最后一天
    return date.getDate();
}

